#ifndef __VALIDATOR_H
#define __VALIDATOR_H
#include <string>
using namespace std;

enum validate_state {
	OK,			/* Le fichier xml est valide et conforme */
	XML_VALID,		/* Le fichier xml est valide sans dtd */
	XML_NOT_CONFORM,	/* Le fichier xml est valide mais non conforme */
	XML_INVALID,		/* Le fichier xml n'est pas un fichier xml */
	DTD_INVALID,		/* Le fichier dtd n'est pas un fichier dtd */
	XML_NOT_FOUND,		/* Le fichier xml est introuvable */
	DTD_NOT_FOUND		/* Le fichier dtd est introuvable */
};

/**
 * Validation d'un fichier xml à partir d'une feuille DTD
 * Si DTD est à "", il tente de le retrouver à partir de ce qui
 * indiqué dans le fichier XMl
 * @return un état décrit dans validate_state
 */
validate_state validate_xml(string xml_path, string dtd_path);

#endif /* __VALIDATOR_H */
